1. Field of the Invention
This invention relates to the static analysis of object-oriented applications and particularly to the static analysis of reachable methods and fields within object-oriented applications by the use of object instantiation.
2. Description of Background
A compiled application consists of classes that hold fields (i.e., data members) and methods (i.e., functional members), all of which together are required to run the application.
In any given use of an application, only a subset of such elements might be utilized during the execution of the application. For example, a user of a word-processor application may make no use of spell-check software that forms a segment of the word processor application. In fact, the word processor may contain software that is inaccessible to the user regardless of the users' actions, this being a consequence of the inefficiency of the development process and the complexity of the software application.
In any software application there may be elements of the application that cannot be used because they are entirely unreachable regardless of how the software is utilized. Further, it is not a trivial exercise to determine which elements are reachable. Due to the fact that with any given analysis of the application all of the possible uses of the software must be considered simultaneously along with all possible inputs to the application, in addition to there being a potentially infinite number of inputs to a given application and an infinite number of uses of the application as well.